using System;
using Gtk;

public partial class MainWindow : Gtk.Window
{
	private int paginasCreadas = 0;
	
	public MainWindow () : base(Gtk.WindowType.Toplevel)
	{
		Build ();
		
		//**	Hemos de suscribirnos al SwitchPage para que nos avise de que se cambia de seleccion
		notebook.SwitchPage += delegate 
		{
			removeAction.Sensitive = notebook.CurrentPage > -1;
		};
		//**	Sin embargo, tenemos que suscribirnos al RemovePage por que el SwitchPage no detecta cuando hemos eliminado la última pagina
		notebook.PageRemoved += delegate 
		{
			removeAction.Sensitive = notebook.CurrentPage > -1;
		};
		
		removeAction.Sensitive = notebook.CurrentPage > 0;
		
		addAction.Activated += delegate
		{
			TreeView treeView = new TreeView();
			treeView.Visible = true;
			
			HBox hBox = new HBox();
			
			Label label = new Label("Página nueva_"+paginasCreadas++);
			label.Visible = true;
			hBox.Add(label);
			
			Button boton = new Button();
			boton.Image = Image.NewFromIconName(Stock.Close, IconSize.Button);
			boton.Visible = true;
			hBox.Add(boton);
			
			boton.Clicked += delegate 
			{
				notebook.Remove(treeView);
			};
			
			notebook.CurrentPage = notebook.AppendPage(treeView, hBox);
			//	Hay que hacer visible el componente añadido para poder hacer visible la pagina que lo contiene		
		};
		removeAction.Activated += delegate
		{
			Widget widget = notebook.CurrentPageWidget;
			notebook.Remove(widget);
			/*
			notebook.RemovePage(notebook.CurrentPage);
			*/
		};
	}

	protected void OnDeleteEvent (object sender, DeleteEventArgs a)
	{
		Application.Quit ();
		a.RetVal = true;
	}
}
